Every year, billions of dollars are spent under government and commercial projects to develop application software for the caution warning (CW) and system health management (HM) of embedded systems, including those used for transportation systems, defense systems, communication systems, automation systems, control systems, “smart” systems, etc. In nearly all cases, the application software (that is, the code) currently used in the industry, is developed and generated from scratch and/or generated via autocode generators.
For example, traditional processes for the development of caution warning (CW) and system health management (HM) software systems are based on “hand coding” using common available programming languages (such as Ada and C). The manual hand coding process is time consuming and costly. More advanced approaches use “automatic code generation” to improve the process. However, this newer process still requires lengthy steps such as “code compilation”, “linking” and “software loading” every time CW or HM objects are generated or modified.
Reuse of application software is only considered cost effective if the new embedded system is very similar to the previously developed system (such as flight management application software used in airplanes). Even in such cases, many “reuse” attempts fail to be cost effective due to hidden dependencies and unique attributes that make such application software products incompatible.
Thus, an innovative solution for improving the productivity of generating CW and HM software (used for near-real-time vehicle health diagnostics and prognostics) beyond automatic code generation by eliminating the need for “code compilation”, “linking” and “software load generation”, and to eliminate the need for software developers to define, design, and code the associated software, as well as eliminate the need for code certification of new or modified software, is needed.